When monitoring the performance of real-time transmission protocols such as the Real Time Protocol (RTP) in a voice over Internet protocol (VoIP) environment, there are several performance-related metrics that need to be recorded. These include delay, jitter, packet loss, loss burst, and Mean Opinion Score (MOS). In a system designed to monitor the quality—either real or simulated—of VoIP calls, there is a need to store values of these performance metrics over time so that they may be analyzed and historical observations can be made. Given the potential high volume of calls, an efficient storage structure must be used in order to minimize the amount of data that must be stored while still providing enough detail in the data to make intelligent observations.
The commercial practice for storing similar data has been to store the minimum, maximum, and/or averages of the observed data over time. Examples thereof are the VoIP Monitoring Manager (VMM) application from Avaya Inc., and the MultiRouter Traffic Grapher (MRTG), a popular monitoring freeware tool, both of which store data as averages. Because this approach tends to “smooth” the data over time, it results in the loss of the details of the distribution of the data when the data is aggregated. Another known technique is “box-and-whisker” distribution. A typical box-and-whisker distribution consists of recording only the values for the 1st, 25th, 50th, 75th, and 99th percentiles within the distribution. While this technique yields storage in constant size and retains some higher-level resolution of the distribution, it is inadequate because percentile data cannot be aggregated over longer time periods. For example, hourly data cannot be aggregated to yield daily results.
Therefore, there is a need to solve the problem of storing real-time network performance data for an arbitrary number of calls between pairs of entities, such as endpoints or subnets, for example, in a limited amount of space while retaining the details of the distribution of the data. Furthermore, this must be done in a manner that allows for the data to be aggregated over time without losing the details of the distribution or introducing substantial error or smoothing effects in the values of the data.